数值特征

概述

本文介绍对特征值的处理技巧。除去语义识别场景外,大多数情况下都需要把特征值数字化。数字化后,根据不同的业务场景还需要进行不同的处理,比如:离散化、连续值等等。

离散值处理

离散值,指的是不连续的值,值是有取值范围的,比如星期、月份。
离散值处理的场景之一,就是把文字描述的离散值转换成数字,比如星期值特征,使用英文单词描述,可以转换成数字。

  • 原始特征值:monday, tuesday, wednesday, thursday, friday, saturday, sunday.
  • 转换后对应的值:1, 2, 3, 4, 5, 6, 7
    转换的方式有以下几种。

map

map是最直接能想到的方式了,自己定义个map,key为原始特征值,value为转换后的数字:

Map map = new Map();
map.put("monday","1");
map.put("tuesday","2");
map.put("wednesday","3");
...

label encoding

label encoding 是sklearn框架的模块,提供类似于map的效果。

one-hot encoding

one-hot encoding 也是sklearn框架的模块,与以上效果略有不同。上面的框架都是把特征的值转换成数字,特征本身的数量没有变化;one-hot encoding则是把每个特征的值作为新的特征,特征值只有0、1两个值。0代表满足,1代表不满足,输出的结果为:

idc1c2mondaytuesdaywednesdaythuesdayfridaysaturdaysunday
11.21.30000001
21.21.30000100
31.21.30100000
41.21.30001000

get dummy

get dummy 是pandas的模块,功能与one-hot encoding一模一样。

二值特征

二值特征,指的是特征的取值范围只有0,1两种情况。比如对于年龄特征,大于18岁算是成年人取值1,小于18岁是未成年人取值0。
sklearn中的binarizer可以实现特征值的二值划分。

多项式特征

多项式特征是对原始特征升维的操作,例如原始特征是2维,可以升级为3维、4维。目的是模型训练的时候,多维度可以提升模型的精确度。

polynomialFeatures

polynomialFeatures 是sklearn中的模块,可以实现数据的升维操作。比如原始数据有AB两个特征,升维后的特征变成了 A B A 2 A ∗ B B 2 A\quad B\quad A^2\quad A*B\quad B^2 ABA2ABB2
原始数据:

idAB
123
234
345

升维后变成:

idAB A 2 A^2 A2A*B B 2 B^2 B2
123469
23491216
345162025

连续值处理

连续值变成离散值,一般是按照区间进行划分。

binning

binning翻译过来是装箱的意思。把数据按照大小的范围划分为几部分。比如成绩的划分,60以下不及格,60-80良,80-100优秀。

分位数

分位数,指的是排序后的数据在整个数据序列中的位置。比如常说的四分位数:[0, 0.25, 0.5, 0.75, 1],就是按照百分比把数据分成了4部分。

对数交换

通过对数转换,把随机的数据,转换为为正态分布的数据。
正态分布的定义:正态分布像一只倒扣的钟。两头低,中间高,左右对称。大部分数据集中在平均值,小部分在两端。实际上人的身高就是符合正态分布的。
在这里插入图片描述

日期时间

日期和时间格式,有内置的函数可以使用,所以能转换的尽量转换。

文本特征

对于文本的处理原则是:让计算机更容易理解。

分词

分词在全文检索中是必要前提,英文通过空格就可以分词,但是中文必须根据语义进行分词,比如:我爱中国,就可以分为:我、爱、中国3个词。成熟的分词器有很多建议直接使用。

词袋模型

分词完成后,可以通过词袋模型来统计词出现的频率。词袋模型仅仅统计词出现的频率,与上下文没有关系。

N-grams模型

N-grams是词袋模型的强化,增加了词组合的频率,一般情况下两个词组合就足够了,否则会造成组合出来的矩阵过于稀疏,而且工作量还很大。

TF-IDF模型

词频-逆文档模型,除了要统计词在数据总出现的频率F1,还要兼顾词在整个语言中出现的频率F2。理论上一个词语在本文中出现的频率高,在真个语言中出现的频率低,则认为该词与本文的主题关系更明显。

词向量

word2vec。把每个词都以向量的方式表示,含义相近的词的距离比较近,或者说比较“粘稠”;含义无关的词语距离较远,即比较“稀疏”。通过词向量模型,能方便找到词语之间的关联关系。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值